This application generally describes a handheld control device such as a controller for a video game system and, more particularly, describes generating inputs to a video game system using a handheld control device.
User inputs to computer systems may be supplied in various ways. For example, when the computer system is a video game console, inputs are typically supplied using cross-switches, joysticks, buttons and the like provided on a controller. A cross-switch or a joystick may be used to control movement of a video game object in various directions and various buttons may be used to control character actions such as jumping, using a weapon and the like.
The controller described in this patent application additionally or alternatively includes an accelerometer arrangement that generates inputs to a video game console or other computer system based on certain movements and/or orientations of the controller. Such a controller can provide a more intuitive user interface in which, for example, movement of a video game object can be controlled by moving the controller in a particular manner. By way of illustration, a player may increase or decrease the altitude of a plane in a video game by tilting the controller up or down. The accelerometer arrangement can be used to provide gaming experiences that cannot be provided easily (if at all) using a controller having cross-switches, joysticks, buttons, etc.
This patent application describes example handheld control devices whose movements can be used to generate inputs to a processor-controlled system such as a video game system. By way of example and without limitation, the magnitude of one or more accelerometer outputs can be used to control the acceleration or speed of an object or character in a racing game. The greater the magnitude of the one or more accelerometer outputs, the faster the object or character moves.
In accordance with an example of the systems and methods described herein, a player moves (e.g., shakes) a controller for a video game system. The magnitude of accelerometer outputs for each axis (e.g., X-axis, Y-axis and Z-axis) is determined. Preferably, any contribution to the accelerometer outputs for these axes due to gravity is subtracted out of the magnitudes. All of the modified magnitudes are added together and this combined magnitude is used an influencing force on a game character or object.
By way of example without limitation, in a racing game, the influencing force may be acceleration, speed, and the like of a character or an object. To make the character or object move as fast as possible, the player's strategy is to move/shake the controller in a manner that produces the largest acceleration over all axes. To do this, the player can move the controller so that it constantly changes direction while moving very quickly. For example, moving the controller in a twisting “figure eight” motion may be a good strategy.